package com.example.smartwaterapi.common.annotation;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

/**
 * API速率限制注解
 * 用于限制API接口的访问频率
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RateLimit {

    /**
     * 限流的key，默认为空，将使用类名+方法名作为key
     */
    String key() default "";
    
    /**
     * 限流次数
     */
    int limit() default 10;
    
    /**
     * 限流时间段
     */
    int period() default 1;
    
    /**
     * 限流时间单位，默认为秒
     */
    TimeUnit timeUnit() default TimeUnit.SECONDS;
    
    /**
     * 限流描述，可用于记录日志
     */
    String description() default "";
} 